package com.banesco.precargadepositos.interfaz.componentes;

import java.util.Vector;

import net.rim.device.api.system.Bitmap;
import net.rim.device.api.ui.Field;
import net.rim.device.api.ui.FieldChangeListener;

import com.banesco.comunes.entidades.IPreCarga;
import com.banesco.comunes.entidades.PreDeposito;
import com.banesco.precargadepositos.interfaz.vistas.base.VistaBase;

public class ListaBanesco extends VerticalFieldManagerBanesco {

	private int _patronDeBusqueda;
	private Vector _elementos;
	private Vector _eventos;
	private VistaBase _ventana;
	private boolean _esDobleFila;
	private boolean _texto1Resaltado;

	public ListaBanesco(Vector elementos, VistaBase ventana, int patron, boolean esDobleFila, boolean texto1Resaltado) {
		_esDobleFila = esDobleFila;
		_texto1Resaltado = texto1Resaltado;
		_elementos = elementos;
		_patronDeBusqueda = patron;
		_ventana = ventana;
		llenarLista();

	}
	
	
	public ListaBanesco(Vector elementos, Vector eventos, boolean esElementoMenu) {
		_elementos = elementos;
		_eventos = eventos;
		
		if(esElementoMenu)
			LlenarListaConVectorElementosMenu();
		else
			LlenarListaConVectorPredepositos();

	}

	private void llenarLista() {

		try {

			int y = _ventana.get_contadorDeEventos();
			
			for (int i = 0; i < _elementos.size(); i++) {

				if (_patronDeBusqueda == 1) {
					

				} 
				else if (_patronDeBusqueda == 2) {
					ElementoListaBanesco elemento = new ElementoListaBanesco(_elementos
							.elementAt(i).toString(), _elementos.elementAt(
							i + 1).toString(), Field.FIELD_LEFT,
							Field.FIELD_RIGHT, _ventana.getEvento(y++),
							y % 2 == 0,_esDobleFila,_texto1Resaltado);
					
					i += 1;
//					elemento.setPadding(10, 0, 2, 0);
					add(elemento);
				}
				
			}
			_ventana.set_contadorDeEventos(y--);
		} catch (Exception ex) {
			String w = ex.getMessage();
		}
	}

	
	private void LlenarListaConVectorElementosMenu() 
	{
		try {
			
			for (int i = 0; i < _elementos.size(); i++) {
				((Field) _elementos.elementAt(i)).setChangeListener((FieldChangeListener) _eventos.elementAt(i));
					
					add((Field) _elementos.elementAt(i));
				}

		} catch (Exception ex) {
			String w = ex.getMessage();
		}
	}
	
	
	private void LlenarListaConVectorPredepositos() 
	{
		ElementoListaBanesco elementoLista = null;
		try {
			
			for (int i = 0; i < _elementos.size(); i++) 
			{
				IPreCarga preCarga = (IPreCarga)_elementos.elementAt(i);
				
				String primeraLinea = preCarga.getFechaEmision() + "     # Ticket: " + preCarga.getNumeroTicket();
				String segundaLinea = "Beneficiario: " + preCarga.getCedulaBeneficiarioEnmascaradaConGuion();
				
				Bitmap iconoIzq;
				
				if(preCarga.getClass().toString().equals(PreDeposito.class.toString()))
					iconoIzq = Bitmap.getBitmapResource( "img/BotonDepositoListado.png" );
				else
					iconoIzq = Bitmap.getBitmapResource( "img/BotonTDCListado.png" );

				elementoLista = new ElementoListaBanesco(primeraLinea,segundaLinea,(FieldChangeListener) _eventos.elementAt(i), i%2 == 0, true);
				elementoLista.setLeftIcon( iconoIzq );
				add(elementoLista);
			}

		} catch (Exception ex) {
			System.out.println(ex);
			System.out.println(ex.getMessage());
		}
	}
	
}
